using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("UserAttentionManager")]
	public class UserAttentionManager : MonoClass
	{
		public static UserAttentionBlocker s_blockedReasons => MonoClass.smethod_6<UserAttentionBlocker>(TritonHs.MainAssemblyPath, "", "UserAttentionManager", "s_blockedReasons");

		public static bool IsBlocked => MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "UserAttentionManager", "get_IsBlocked", Array.Empty<object>());

		public static string CurrentActiveBlockersString => MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "UserAttentionManager", "get_CurrentActiveBlockersString");

		public UserAttentionManager(IntPtr address, string className)
			: base(address, className)
		{
		}

		public UserAttentionManager(IntPtr address)
			: this(address, "UserAttentionManager")
		{
		}

		public static bool IsBlockedBy(UserAttentionBlocker attentionCategory)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "UserAttentionManager", "IsBlockedBy", new object[1] { attentionCategory });
		}

		public static bool CanShowAttentionGrabber(string callerName)
		{
			return MonoClass.smethod_11<bool>(TritonHs.MainAssemblyPath, "", "UserAttentionManager", "CanShowAttentionGrabber", new Class276.Enum20[1] { Class276.Enum20.String }, new object[1] { callerName });
		}

		public static bool CanShowAttentionGrabber(UserAttentionBlocker attentionCategory, string callerName)
		{
			return MonoClass.smethod_11<bool>(TritonHs.MainAssemblyPath, "", "UserAttentionManager", "CanShowAttentionGrabber", new Class276.Enum20[2]
			{
				Class276.Enum20.ValueType,
				Class276.Enum20.String
			}, new object[2] { attentionCategory, callerName });
		}

		public static void StartBlocking(UserAttentionBlocker attentionCategory)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "UserAttentionManager", "StartBlocking", attentionCategory);
		}

		public static void StopBlocking(UserAttentionBlocker attentionCategory)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "UserAttentionManager", "StopBlocking", attentionCategory);
		}

		public static AvailabilityBlockerReasons GetAvailabilityBlockerReason(bool isFriendlyChallenge)
		{
			return MonoClass.smethod_14<AvailabilityBlockerReasons>(TritonHs.MainAssemblyPath, "", "UserAttentionManager", "GetAvailabilityBlockerReason", new object[1] { isFriendlyChallenge });
		}

		public static string DumpUserAttentionBlockers(string callerName)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "UserAttentionManager", "DumpUserAttentionBlockers", callerName);
		}
	}
}
